我对节点js的承诺有一些问题.这是我的示例代码:
var p1 = new Promise(function(resolve, reject) { // my function here }); p1.then(function(result){ // my result });
这段代码是可行的,但要从p1获取值,我必须使用.then方法,我的结果值可以在p1.then上访问.如何在没有的情况下访问p1值?
低于我的期望结果:
var p1 = new Promise(function(resolve, reject) { // my function here }); var abc = NextFunction(p1);
因为p1值将用于外部p1变量的下一个代码,怎么做.谢谢
p1是a Promise
,您必须等待它评估并使用Promise所需的值.
你可以在这里阅读:http://www.html5rocks.com/en/tutorials/es6/promises/
虽然result
仅在已解析的函数内可用,但您可以使用简单变量对其进行扩展
var res; p1.then(function(result){ res = result; // Now you can use res everywhere });
但是要注意res
只有在promise解决后才能使用,如果依赖于该值,请从下面调用下一个函数.then
:
var res; p1.then(function(result){ var abc = NextFunction(result); });