0

我的代码目前采用以下形式:

var x = 1;
var promise = new Promise(function(resolve, reject) {
    request(url, function(err, res, body) {
        if (x == 1)
            resolve(body);
    });
});

为什么在这种情况下 x 未定义?

如果我省略了承诺(不需要),如下所示:

var x = 1; 
request(url, function(err, res, body)) {
    if (x == 1)
        // use body
});

然后我就可以成功访问 x 了。我怎样才能信守承诺但仍然可以访问 x?

4

0 回答 0