因?yàn)榛卣{(diào)函數(shù)的特點(diǎn)就是無(wú)需等待,且回調(diào)執(zhí)行的時(shí)間也不確定。你這里出現(xiàn)這種輸出順序的原因是執(zhí)行addComments
時(shí)花了些時(shí)間。
如果你想要按Added a campground、Created new comment
這樣交替打印的話,就需要等待前一個(gè) comment
完成再執(zhí)行下一個(gè)capmgroup
的添加了。這就放棄了js異步的優(yōu)勢(shì)?,F(xiàn)在data數(shù)據(jù)只有三個(gè)不算多,但是數(shù)據(jù)一多就會(huì)影響體驗(yàn),用戶會(huì)看到最后面的comment添加的比第一個(gè)遲的多。
代碼的話可以用Promise
:
function addComments(campground, cmt,resolve) {
Comment.create(cmt, function(err, comment) {
if (err) console.log(err);
else {
campground.comments.push(comment);
campground.save();
console.log("Created new comment");
resolve();
}
});
}
function new_addCamps(seed) {
return new Promise((resolve, reject) => {
Camp.create(seed, function(err, campground) {
if (err) reject(err);
else {
console.log("Added a campground");
addComments(campground, cmt,resolve);
}
});
});
}
同時(shí)不能再使用forEach
而是使用for
循環(huán):
(async function (){
for(let i=0;i<data.length;i++){
await addCamps(data[i]);
}
})();
at com.alibaba.dubbo.registry.integration.RegistryDirectory.doList(RegistryDirectory.java:579)
private volatile boolean forbidden = false;
public List<Invoker<T>> doList(Invocation invocation) {
if (forbidden) {
throw new RpcException(RpcException.FORBIDDEN_EXCEPTION, "Forbid consumer " + NetUtils.getLocalHost() + " access service " + getInterface().getName() + " from registry " + getUrl().getAddress() + " use dubbo version " + Version.getVersion() + ", Please check registry access list (whitelist/blacklist).");
}
forbidden被設(shè)置為true會(huì)拋出此異常,debug檢查一下消費(fèi)者哪里把forbidden變量被設(shè)置為true了?
new.target屬性允許你檢測(cè)函數(shù)或構(gòu)造方法是否是通過(guò)new運(yùn)算符被調(diào)用的。在通過(guò)new運(yùn)算符被初始化的函數(shù)或構(gòu)造方法中,new.target返回一個(gè)指向構(gòu)造方法或函數(shù)的引用。在普通的函數(shù)調(diào)用中,new.target 的值是undefined。
new.target語(yǔ)法由一個(gè)關(guān)鍵字"new",一個(gè)點(diǎn),和一個(gè)屬性名"target"組成。通常"new."的作用是提供屬性訪問(wèn)的上下文,但這里"new."其實(shí)不是一個(gè)真正的對(duì)象。不過(guò)在構(gòu)造方法調(diào)用中,new.target指向被new調(diào)用的構(gòu)造函數(shù),所以"new."成為了一個(gè)虛擬上下文。
new.target屬性是一個(gè)可以被所有函數(shù)訪問(wèn)的元屬性。在箭頭函數(shù)中,new.target指向外圍函數(shù)的new.target。
components中注冊(cè)組件了嗎?
components: {aComponent}
那用戶信息是如何獲取的呢?
請(qǐng)求后端獲取的。
也在做小程序,我和你看到同樣的網(wǎng)址:https://github.com/tennessine...
然后連接本地的broker始終報(bào)錯(cuò):Connection closed before receiving a handshake response
請(qǐng)問(wèn)你有找到一種可用的方式嗎?
代碼行數(shù)多,主要多在哪里?如果是 html 模板代碼多,那么可以考慮繼續(xù)切分組件,如果是 js 代碼多,那么基本上應(yīng)該是 methods 多以及業(yè)務(wù)邏輯復(fù)雜吧?那么把 methods 根據(jù)分類(lèi)單獨(dú)放到一些模塊里應(yīng)該可以提升可維護(hù)性吧,在 .vue 文件中引入這些模塊然后放到 methods 聲明處。
感覺(jué)你對(duì) vuex 可能有點(diǎn)抵觸,不過(guò)說(shuō)實(shí)話,商城類(lèi)應(yīng)用還是挺適合使用 vuex 的,因?yàn)樯唐?、?gòu)物車(chē)、郵費(fèi)、促銷(xiāo)條件……彼此之間關(guān)聯(lián)挺密切的吧。前面說(shuō)的把 methods 分為模塊,進(jìn)一步可以考慮把 methods 變成 vuex 的 mutations 和 actions,vuex 也按功能組織成不同的模塊。
總之,就是要進(jìn)一步加強(qiáng)組件化、模塊化,模塊化的作用是分治,把較大的、復(fù)雜的功能點(diǎn)分解成小的可控的模塊去實(shí)現(xiàn)和維護(hù)。
如果代碼行數(shù)多是在 css 部分,那可以把非 scoped style 的拎出來(lái)單獨(dú)放到一些 css(或 less、scss)文件中(有 UI 原型團(tuán)隊(duì)的話,這部分工作由 UI 原型團(tuán)隊(duì)來(lái)做)。
你的理解沒(méi)有錯(cuò),只是 ES2017 把擴(kuò)展運(yùn)算符引入了對(duì)象。可以看一下阮一峰的文章:http://es6.ruanyifeng.com/#do...
v-loading="loading"
謝邀。
之前用過(guò)一種方案,是把body獨(dú)立(不作為wrap容器),然后在body上加個(gè)pointer-events: none;
濾掉觸摸事件,再在子級(jí)上加個(gè)pointer-events: auto;
恢復(fù),不知道是否適合你的項(xiàng)目~
同問(wèn)這個(gè)問(wèn)題,目前只會(huì)手動(dòng)創(chuàng)建表之后再用Sequelize API進(jìn)行數(shù)據(jù)讀寫(xiě)。
假如基于Sequelize的model對(duì)應(yīng)了一個(gè)新表,執(zhí)行起來(lái)直接就會(huì)報(bào)“該新表不存在”的錯(cuò)。
那么請(qǐng)問(wèn)怎樣直接進(jìn)行表的操作呢?像下面這樣調(diào)用Sequelize的sync( )
方法好像也不管用???
const model = require('./model.js');
model.sync();
console.log('init db ok.');
process.exit(0);
對(duì)啊,那只是node的東西,前端打包放到nginx的html下面就行了...沒(méi)什么關(guān)系啊....
.roll-inner2 {
animation: roll 8s infinite linear;
animation-delay: 4s;
}
animation-delay這個(gè)改下
const obj = {'a': 1, 'b': 2}
Object.keys(obj); //["a", "b"]
Object.values(obj); //[1, 2]
Object.keys(obj).forEach(key => console.log(key, obj[key]));
//a 1
// b 2
同樣的設(shè)置在最新的2.0.10版本下沒(méi)問(wèn)題,初步判斷為elementUI舊版本的bug
這個(gè)你要看你 webapp外面打包那個(gè)殼子 有沒(méi)有給你提供“返回按鍵的”事件讓你去做。
或者說(shuō)你的h5頁(yè)面有沒(méi)有做成像瀏覽器回退一樣的效果,也就是說(shuō)你的頁(yè)面有路由。
要實(shí)現(xiàn)你想要的效果,就是要監(jiān)聽(tīng)上面說(shuō)的“返回按鍵的事件”然后判斷你的頁(yè)面路由回退到根路由了,那就給出一個(gè)toast提示,再按一下推出app
要結(jié)合圖表庫(kù)來(lái)做了,類(lèi)似echarts之類(lèi)的
你可以下載一下git history diff這個(gè)插件
可以把當(dāng)前文件跟以前的各個(gè)版本進(jìn)行對(duì)比
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
北大青鳥(niǎo)中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。