[英]Why Promise???? Help me
決定開始學習 node js,同時在 VK 中編寫一個機器人。 我想做一個顯示用戶名字和姓氏的函數,但我得到了某種 Promise。 也許這是一個愚蠢的問題,但仍然如此。
const VkBot = require('node-vk-bot-api');
const bot = new VkBot('токен вк');
async function get_username (user_id) {
var act = await bot.execute('users.get', {
'user_ids': user_id,
});
return act;
// return act.first_name + ' ' + act.last_name;
}
bot.event('message_new', (ctx) => {
var text = ctx.message.text;
var peer_id = ctx.message.peer_id;
var user_id = ctx.message.from_id;
// console.log(peer_id + ' | ' + get_username(user_id) + ' | ' + text);
console.log(get_username(user_id))
});
bot.startPolling();
您需要等待get_username
:
bot.event('message_new', async ctx => { // Callback async
const text = ctx.message.text;
const peer_id = ctx.message.peer_id;
const user_id = ctx.message.from_id;
console.log(await get_username(user_id)); // Wait for get_username
});
我會回答你的原因。
Promise 是以最簡單的方式處理異步操作的理想選擇。 它們可以輕松處理多個異步操作,並提供比回調更好的錯誤處理。
所以在 ES6 中你可以使用 async/await 代替回調,這就是你如何實現非阻塞代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.