Javascript 理解承诺语法

Javascript 理解承诺语法,javascript,promise,Javascript,Promise,我已经读了一段关于承诺的书了。。 但当涉及到真实的东西时,我想我找不到正确的语法。 我需要你的帮助,我不懂一些基本的东西,请帮我找到它 这是我的密码: var Q = require('es6-promise').Promise; function timePrinting(num) { return function promice(resolve, reject) { /*time consuming action*/ return resol

我已经读了一段关于承诺的书了。。 但当涉及到真实的东西时,我想我找不到正确的语法。 我需要你的帮助,我不懂一些基本的东西,请帮我找到它

这是我的密码:

var Q = require('es6-promise').Promise;

function timePrinting(num) {
    return function promice(resolve, reject) {

         /*time consuming action*/

        return resolve("Complete printing " + num + " seconds");
    }
}

Q = timePrinting(15).then(console.log(data), null);

您要做的是返回一个包含两个参数的新函数

还愿

var Promise = require('es6-promise').Promise;

function timePrinting(num) {
    return new Promise(function (resolve, reject) {   
        resolve("Complete printing " + num + " seconds");  // write this line when the promise should be fulfilled 
    });
}
有了这个,你可以

timePrinting(100).then(function (result) {
    console.log(result);
});
记录传递给
resolve


关于ES6承诺的好文章:

这对于一个问题来说太宽泛了,你是在问怎么做还是怎么做?我只是在问承诺的语法,其余的都被省略了。谢谢如果你问如何将某物转换为承诺,请看我链接的问题:它应该解释如何将回调转换为承诺。如果“耗时操作”已经返回承诺,您可以
返回timeConsumingAction(…)
返回timeConsumingAction(…)。然后(…
它应该返回一个应该在级联中解决的承诺。然后
问题是它不起作用了…调用的语法或我从函数返回承诺的逻辑有问题,我无法理解:-/如果你在jsfiddle.net上创建了一个孤立的fiddle,那就太棒了他发布了(或者在这里的堆栈片段中)。就目前情况而言,很难理解您在这里提出的问题。如果您执行的是异步的
耗时操作
,则此操作将在该函数完成之前返回。另一方面,如果您不想等待,并且希望返回同步结果,则不应返回promi首先是se。我得到:返回新承诺(函数(解析、拒绝){^ReferenceError:承诺不是defined@BenjaminGruenbaum,异步时不会返回。构造的承诺对象将挂起,直到调用
resolve
reject
为止。如果您不相信我,可以在FF@MishaShblin中运行以下代码,您需要第一行
var promise=requirere('es6-promise')。promise;
@XrXrXr我很清楚承诺是如何工作的,谢谢。我的意思是,在最后一行调用
resolve
,而不考虑任何异步操作都是多余和愚蠢的。如果正在对同步操作计时,请返回一个普通值;如果没有,请将
resolve
放在异步操作的回调中。