2016-08-30 2 views
1

Я делаю что-то неправильно, очень новичок в узле js, поэтому, пожалуйста, со мной.nodejs обещают неправильное использование

Окружающая среда: узел v5.1.0 для Windows7.

Я пытаюсь отправить данные в publish_url используя сообщение. Я хотел бы запустить еще одну функцию в улове init или then. Но не доходите до этих частей.

Отпечатки «вызов функции успешного управления func» и «call to failed handle func» не вызываются.

Пожалуйста, сообщите мне, что я делаю неправильно?

var request = require('request'); 
var publish_url = "https://some_server.com"; 
function publish_data(url, data) { 
    return new Promise(function (resolve, reject){ 
     request.post(
      url, 
      { json: 
       {"handshake":{"data":data}} 
      }, 
      function (error, response, body) { 
       if (!error && response.statusCode == 200) { 
        console.log(body); 
        resolve(body); 
       } else { 
        console.log("Error:",body); 
        reject(body); 
       } 
      } 
     ); 
    }); 
} 

function init(){ 
    console.log("init 1"); 
    try{ 
     publish_data(publish_url, 5).then(
      function(obj){ 
       console.log("call to success handle func"); 
      }); 

    }catch(e){ 
     console.log("call to failed handle func");  
    } 

    console.log("init 3"); 
} 

console.log("start"); 
init(); 
console.log("end"); 
+0

Эй, «голый» ЧТО с тобой? Может, ты имел в виду «медведь со мной» ??? –

ответ

3

Не используйте try-catch

Обещания работает таким образом:

publish_data(publish_url, 5).then(function(obj){ 
console.log("call to success handle func"); 
}).catch(function(data){ 
console.error(data); 
}); 

Вот простой пример JS обещание:

function firstFunct(){ 
 
return new Promise(function(resolve,reject){ 
 
    data = 5; 
 
    if(data == 5) resolve(data); 
 
    else reject(data); 
 
}) 
 
} 
 

 
firstFunct().then(function(data){ 
 
    console.log("Resolved, data expected to be 5:" + data); // if Promise is resolved 
 
}).catch(function(data){ 
 
    console.error("Rejected, data is not 5:" + data) // if Promise is rejected 
 
});

Смежные вопросы