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
放在异步操作的回调中。