首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vorpal.js参数和参数

Vorpal.js参数和参数
EN

Stack Overflow用户
提问于 2016-01-13 21:57:12
回答 1查看 876关注 0票数 1

我正在开发一个Node.js应用程序,并使用涡旋命令。我试图将一个值从命令发送到一个函数,但是我无法让它工作。我做错什么了吗?

以下是代码:

代码语言:javascript
复制
vorpal
  .command('rollto <num>', 'Rolls to')
  .action(function(num) {
    rollto(num);
  }); 

function rollto(num) {
    bettime = bettimems % 60;
    socket.emit('betting', bettime);
    timer1 = setInterval(function () {
        bettime--;
        socket.emit('betting', bettime);

        if (bettime == 0) {
            socket.emit('random number', num);     
            console.log("Rolled to:" + num + "!!!");
            clearInterval(timer1);
        }
    }, 1000); 
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-13 22:25:59

问题是,传递给命令的action的函数具有与假设不同的参数。

这是文档的相关部分

代码语言:javascript
复制
.command.action(function)

This is the action execution function of a given command. 
It passes in an arguments object and callback.

Actions are executed async and must either call the passed 
callback upon completion or return a Promise.

下面是一个有用的例子:

代码语言:javascript
复制
var vorpal = require('vorpal')();

vorpal
.command('rollto <num>', 'Rolls to')
.action(function(arguments, callback) {
    rollto(arguments, callback);
});

function rollto(arguments, callback) {
    var num = arguments.num;  // get 'num' parameter from arguments
    timer1 = setInterval(function () {
        console.log('test');
        console.log(num);
        clearInterval(timer1);
        callback();  // Don't forget to use callback() to notify vorpal
    }, 1000);
}

vorpal
  .delimiter('myapp$')
  .show();

注意,实际上在setInterval中有一个异步代码,所以您需要在末尾使用回调()通知vorpal处理已经完成。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34777859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档