2017-06-01 90 views
0

我是新来的NodeJS。我有一个异步功能替代.then()请求后()

request({url: 'url',json: true}, function (error, response, body) {}); 

我只想在调用此函数后调用一个函数。我不能在这里调用.then()。这种情况有哪些其他的选择?

回答

0

只是把它作为你的回调函数:

function callback (err, res, body) { 
    // Do what needs to be done here. 
}  
request({ url: 'url, json: true }, callback); 

在回调函数开始,检查是否存在err如果是这样,处理错误。

article可能会帮助你。

如果您的异步函数返回Promise,则只能调用then。但在进入Promise之前,您应该了解关于Node.js的基础知识。

+0

我已经有一个回调函数。我需要在回调函数后调用这个新函数。 – ARUNIMA

+0

然后你必须在你的回调函数中调用它 – Josh

+0

我必须在这个回调函数中写入4个文件。这也是一个异步过程。现在,我只想在完成所有这4个文件的写入之后调用该函数。这将不可能放入回调中,是吗? – ARUNIMA

1

你可以尝试这样的事情

return new Promise(resolve => { 
    request({ 
     url: "", 
     method: "", 
     headers: {}, 
     json: true 
    }, function (error, response, body) { 
     if(!error) 
      resolve(body); 
    }) 
}).then(value => { 
    // process value here 
})