2017-06-01 30 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 
})