В этом примере есть несколько проблем.
Вы должны ожидать вызова функции getTitle, вы ожидаете внутри функции, но вы должны также ожидать вызова функции.
Вы должны окружить getTitle блоком try и catch и проверить внутри функции, есть ли возвращаемый заголовок (например, заголовок для Google равен нулю)
const puppeteer = require("puppeteer");
list = [
"https://www.facebook.com/",
"https://www.google.com/",
"https://www.zocdoc.com/"
];
const getTitle = async (p, url) => {
try{
await p.goto(url);
const title = await p.title();
if(title){
return title
}
}
catch(e) {
throw(e)
console.log(e)
}
};
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
console.log(this)
for (var url of list) {
try{
console.log(await getTitle(page, url))
}
catch(e ){
console.log('No title')
}
}
await browser.close();
})();
Этот пост показывает, как делать то, что вы хотите. В качестве бонуса он также показывает, как настроить его так, что если вы сразу же вернетесь назад после открывающего символа, он также удалит закрывающий символ после курсора.
Обновление:
Поскольку я опубликовал этот ответ, я обнаружил Autopair , который является в значительной степени идеальной системой для этого случая использования. Я много пользовался им и мне это нравилось.
ParEdit звучит так, как будто он будет обрабатывать круглые скобки вашей потребности, с оговоркой, что он был разработан для Common Lisp и Scheme. Стив Йегге упоминает JDEE для разработки Java на emacs , но я не могу сказать об этом по собственному опыту, и я не смог найти никакой документации о структурированном редактировании.
To summarize what I did, I looked at this post, and took what I wanted out of it. What I ended up with was simpler, because I didn't have the additional requirements he had.
I used these two new definitions:
(defvar cheeso-skeleton-pair-alist
'((?\) . ?\()
(?\] . ?\[)
(?" . ?")))
(defun cheeso-skeleton-pair-end (arg)
"Skip the char if it is an ending, otherwise insert it."
(interactive "*p")
(let ((char last-command-char))
(if (and (assq char cheeso-skeleton-pair-alist)
(eq char (following-char)))
(forward-char)
(self-insert-command (prefix-numeric-value arg)))))
And then in my java-mode-hook, I bound the close-paren and close-bracket this way:
(local-set-key (kbd ")") 'cheeso-skeleton-pair-end)
(local-set-key (kbd "]") 'cheeso-skeleton-pair-end)
Я использую paredit-mode, который делает то же самое и многое другое.