鍍金池/ 問(wèn)答/ HTML問(wèn)答
清夢(mèng) 回答

因?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}

風(fēng)畔 回答

那用戶信息是如何獲取的呢?

請(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)做)。

拮據(jù) 回答

你的理解沒(méi)有錯(cuò),只是 ES2017 把擴(kuò)展運(yùn)算符引入了對(duì)象。可以看一下阮一峰的文章:http://es6.ruanyifeng.com/#do...

乞許 回答

謝邀。
之前用過(guò)一種方案,是把body獨(dú)立(不作為wrap容器),然后在body上加個(gè)pointer-events: none;濾掉觸摸事件,再在子級(jí)上加個(gè)pointer-events: auto;恢復(fù),不知道是否適合你的項(xiàng)目~

網(wǎ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ì)比